package com.rockcent.service;

import com.rockcent.common.common.JsonResult;
import com.rockcent.mall.lib.domain.MallWechatMenuConfig;
import com.rockcent.mall.lib.dto.MallWechatMenuConfigDto;
import retrofit2.Call;
import retrofit2.http.*;

import java.util.List;
import java.util.Map;

/**
 * Created by DK on 16/11/17.
 */
public interface MallWechatApiService {

    /**
     * M端菜单配置
     * @param domain 域名
     * @param dto 菜单
     */
    @POST("/api/local/mall/wechat/menu/release")
    Call<JsonResult> releaseWechatMenuConfig(@Header("domain") String domain, @Body MallWechatMenuConfigDto dto);


    /**
     * 微信菜单获取
     * @param domain 域名
     */
    @GET("/api/local/mall/wechat/menu/list")
    Call<JsonResult> queryWechatMenuList(@Header("domain") String domain);


    /**
     * 微信菜单获取
     * @param domain 域名
     */
    @GET("/api/local/mall/wechat/balance/account")
    Call<JsonResult> wechatOrderQuery(@Header("domain") String domain, @Field("transactionId") String transactionId, @Field("orderNum") String orderNum);

    /**
     * 根据类别分页获取非图文素材列表
     * @param domain 域名
     * @param type 素材的类型，图片（image）、视频（video）、语音 （voice）
     * @param offset 偏移位置 int offset 从全部素材的该偏移位置开始返回，0表示从第一个素材 返回
     * @param count 返回数量 int count 取值在1到20之间
     * @return
     */
    @FormUrlEncoded
    @POST("/api/local/mall/wechat/material/file_batch_get")
    Call<JsonResult> materialFileBatchGet(@Header("domain") String domain, @Field("type") String type, @Field("offset") int offset, @Field("count") int count);

    /**
     * 根据类别分页获取图文素材列表
     * @param domain 域名
     * @param offset 偏移位置 int offset 从全部素材的该偏移位置开始返回，0表示从第一个素材 返回
     * @param count 返回数量 int count 取值在1到20之间
     * @return
     */
    @FormUrlEncoded
    @POST("/api/local/mall/wechat/material/news_batch_get")
    Call<JsonResult> materialNewsBatchGet(@Header("domain") String domain, @Field("offset") int offset, @Field("count") int count);

    /**
     * 获取素材
     * @param domain 域名
     * @param type 素材的类型
     * @param mediaId 素材ID
     * @return
     */
    @FormUrlEncoded
    @POST("/api/local/mall/wechat/material/info")
    Call<JsonResult> getMaterialInfo(@Header("domain") String domain, @Field("type") String type, @Field("mediaId") String mediaId);
}
